<?php
/* 
分类管理控制器
* @Author: {daifei}
* @Date:   2014-03-19 15:02:14
* @Last Modified by:   {daifei}
* @Last Modified time: 2014-03-20 17:51:12
*/
	// 解决模板问题
	// 在html页面 载入模板
	// ==========载入模型===========================
	// 1先引入表 $table
	// 2定义框架自带匹配规则 $validate
	// 



	
	class CategoryControl extends CommonControl{
		private $model;
		/**
		 * [__construct 自动运行new MOdel]
		 * 这里__init会先运行  并且会覆盖掉父亲的  所以需要先运行父亲的
		 */
		public function __init(){
			parent::__init();
			$this->model=K('Category');
		}
		/**
		 * [index 显示分类列表]
		 * @return [type] [description]
		 */
		public function index (){
			$data=$this->model->get_all();
			//p($data);
			//需要将分类信息数组拿出来
			$page=$data['page'];
			unset($data['page']);
			//将分页信息  和全部的信息分配到页面中去
			// p($data);die;
			$this->assign('page' ,$page);

			//第一个参数是数组  2父栏pid 3是前缀 4键名 5键名  6等级不要传  
			$data=Data::channelList($data ,0 ,'__','cid' ,'pid');
			//这里点击加号出现的效果是用toggle  原理是：
			//1首先在循环的tr里面 加上pid  cid等属性
			//2  首先只是让pid=0的顶级目录显示 其余的隐藏
			//3 获取clas 点击的时候让pid=cid的tr显示  并且让 这个快的颜色变换
			//4再次点击的时候让pid=cid的tr消失  并且鹅颜色换掉
			$this->assign('data' ,$data);
			$this->display();
		}
		//只有更删改的时候才执行create
		public function add(){
			//判断添加的数据是不是ajax过来的数据
			if(IS_AJAX){
				if(!$this->model->create()){
					// echo 12;die;
					//如果验证出错 则用ajax返回结果
					$return =array(
						'state'	=>	0,
						'message'	=>$this->model->error,
						'timeout'	=>3
						);
					//返回json数据
					
					$this->ajax($return);
				}
				//如果
				if($this->model->add_data()){
					$return = array(
						'state'		=>1,
						'message'	=>'添加成功',
						'timeout'	=>3
						);
			
				$this->ajax($return);
				}
			}
			$this->display();
		}
		/**
		 * [add_son 添加子分类]
		 */
		public function add1_son(){
			if(IS_AJAX){
				if(!$this->model->create()){
					// echo 12;die;
					//如果验证出错 则用ajax返回结果
					$return =array(
						'state'	=>	0,
						'message'	=>$this->model->error,
						'timeout'	=>3
						);
					//返回json数据
					
					$this->ajax($return);
				}
				//如果
				if($this->model->add_data()){
					$return = array(
						'state'		=>1,
						'message'	=>'添加成功',
						'timeout'	=>3
						);
			
					$this->ajax($return);
				}
			}
			$this->display();
		}
		/**
		 * [add_son 添加子分类]
		 * //1 通过点击 index.html的添加子分类 获取cid
		 * //2 再通过获取的cid 组合成数组新的数组 
		 * //3 然后再将这个数组分配到html页面   将pid放在隐藏域中
		 * //4再发送ajax 发送到数据库中 完成
		 */
		public function add_son(){
			//这里是提交的时候执行的
			if(IS_AJAX){
				//执行验证
				if(!$this->model->create()){
					$return=array(
						'state'		=>0,
						'message'	=>'操作失败',
						'timeout'	=>2
						);
					$this->ajax($return);
				}
				//执行添加
				if($this->model->add_data()){
					$return=array(
						'state'		=>1,
						'message'	=>'操作成功',
						'timeout'	=>2
						);
					$this->ajax($return);
				}
			}
			//这里是没有执行ajax  是页面自己

			//获取到get里面的cid
			$cid=Q('get.cid' ,0 ,'intval' );
			//查找的字段
			$filed=array('cname' ,'cid');
			//获取这一条数据
			$data=$this->model->get_one_data($cid ,$filed);
			// p($data);die;
			$this->assign('data' ,$data);
			$this->display();


		}
		/**
		 * [del 删除]
		 * @return [type] [description]
		 */
		public function del (){
			//获取到当前的id
			if(IS_AJAX){
				//接受ajax传过来的参数	
					$cid=Q('cid',0,'intval');
					if(!$this->model->have_data($cid)){
						$return=array(
							'state'		=>0,
							'message'	=>$this->model->error,
							'timeout'	=>2
							);
						 $this->ajax($return);
					}
					//判断完成后  开始执行删除
					$this->model->del_data($cid);
					$return =array(
						'state'		=>1,
						'message'	=>'删除成功',
						'timeout'	=>2
						);
					$this->ajax($return);
			}

		}
		/**
		 * [edit 编辑文章]
		 * @return [type] [description]
		 */
		public function edit (){
			//先获取到
			if(IS_AJAX){
				if(!$this->model->create()){
					$return = array(
						'state'	=>0,
						'message'	=>$this->model->error,
						'timeout'	=>2
						);
					$this->ajax($return);
				}

			
				//执行模式修改方法===  这里执行了修改的动作
				$this->model->update_data(Q('post.cid' ,0 ,'intval'));
				$return=array(
					'state'	=>1,
					'message'	=> '修改成功',
					'timeout'	=>2
					);
				$this->ajax($return);
			}
			//获得单条  这里是用来解决 html页面的分配值  以及引入模板
			////解决点击编辑的时候有默认值的问题
			///============这里的cid是哪里来的  ---从地址栏过来
			$data=$this->model->get_one_data(Q('cid' , 0 ,'intval'));
			// p($data);die;
			$this->assign('data' ,$data);

			//分配用户所选的分类=====编辑的时候可以改变分类
			$cid=Q('cid' ,0 ,'intval');
			$cate=$this->model->get_chose_cate($cid);
			// P($cate);die;
			// 将得到的数组 分配到页面中去 此数组出了自己和子级外

			$this->assign('cate' ,$cate);
			$this->display();
			

		}
		/**
		 * [ajax_update_stat 点击图片更改 数据效果]
		 * @return [type] [description]
		 */
		public function ajax_update_stat(){

			if(IS_AJAX){
				$this->model->ajax_stat();
				$return=array(
					'state'	=>1,
					'message'	=>'操作成功',
					'timeout'	=>2
					);
				$this->ajax($return);
			}
		}
	}
?>
